# List[] - упорядоченная колекция элементов

a = [12, 14, 14, 15, -11, 12, 160]

print('Длинна списка:', len(a)) #Длинна списка
b = sum(a)/len(a) #делем сумму списка на его длинну
print('Среднеарефметическое число: {0:3.2f}'.format(b)) #Среднеарефметическое число
# {0-номер ячейки:размер целого числа.размер дробиf-флоат }.format(b - в аргументе список)

a = a + [10, 11, 12]

print('Сложение списков', a) #Сложение списков, добавили [10, 11, 12]
a = a * 2
print('Умножение списков', a)

print('Проверка вхождения', 12 in a) #проверка вхождения через - in. Выводит - True\False
print('Максимальное значение', max(a))

print('Минимальное значение', min(a))
print('Сумма значенией', sum(a))
print('Проверка вхождения', sorted(a)) # Сортировка по увеличению. (Мин-Мах). Работает только с числами.
print('Проверка вхождения', sorted(a, reverse=True)) # Сортировка по уменьшению. (Мах-Мин). Работает только с числами.

# индексы

a = [45, 55, 65, 75, 88, 99, 100]

#index0 1 2 3 4 5 6
print(a[0], a[2], a[3], a[-1]) # 45 65 75 100
print(a[0:3]) # обращение к списку а с первого по второй индеск 45, 55, 65
print(a[4:]) # обращение к списку, с 4 и до конца - 88, 99, 100
print(a[::2]) # вывод каждого 2го индекса, начиная с 0. [45, 65, 88, 100]
print('Bывод списка в обратном порядке:', a[::-1])
# вывод списка в обратном порядке [100, 99, 88, 75, 65, 55, 45]

a = [45, 55, 65, 75, 88, 99, 100]

a[5] = 667
print('New list a:', a) #New list a: [45, 55, 65, 75, 88, 667, 100]
a[1:5] = 333, 444, 555
print('New list a:', a) #New list a: [45, 333, 444, 555, 667, 100]
del a[-1] #Del lasr index (100)
a = a + [1000] #Add last index
print('New list a:', a) #New list a: [45, 333, 444, 555, 667, 1000]

# присваивание уникального списка второй переменной
a = [45, 55, 65, 75, 88, 99, 100]

b = a[:] #после этого изменения списка b, не вносят изменения в список а
b = b + [[111]]

print('old list:', a) #[45, 55, 65, 75, 88, 99, 100]
print('neew list', b) #[45, 55, 65, 75, 88, 99, 100, [111]]

# меоды в списках
m = [45, 55, 65, 75, 88, 99, 100]

m.append(5500) #добавляем в конец новый элемент 5500
print('list m', m)

m.clear() #cleaning list m
print('list m', m) #list m []
m = [45, 55, 65, 75, 88, 99, 100, 100, 1000]

f = 100
print(f'сколько {f} в списке m:', m.count(f), 'раза.') #сколько раз встречается аргумент в списке
print(f'на каком месте {f} в списке m:', m.index(f), 'index.') # на каком месте в списке искомый аргумент?
print(100 in m[0:]) # есть ли 100 в списке m? - True\False
i, d = 5, 5505
m.insert(i, d) #добавить в список (на какой индекс, что именно добавить
print(f'Добавляем в список m на индекс {i} число {d}', m)

m = [45, 55, 65, 75, 88, 99, 100, 200, 1000]
m.pop()
print('deleting the last element in list m "1000"', m) #deleting the last element in list m "1000" [45, 55, 65, 75, 88, 99, 100, 200]
m.pop(6)

print('deleting 6 index number element in list m "100"', m) #deleting 6 index number element in list m "100" [45, 55, 65, 75, 88, 99, 200]
m.remove(99)

print('deleting element in list m "100"', m) #deleting element in list m "100" [45, 55, 65, 75, 88, 200]
m.reverse()

print('reversing list m', m) #reversing list m [200, 88, 75, 65, 55, 45]
m.sort()

print('Min - Max', m) #сортировка по списка по возрастанию
m.sort(reverse=True)

print('Max - Min', m) #сортировка по убыванию